package event.controller
{
	import com.drm.utils.DRMUtils;
	
	import flash.display.Sprite;
	import flash.events.EventDispatcher;
	
	import mx.controls.Alert;
	import mx.messaging.messages.ErrorMessage;
	import mx.rpc.events.FaultEvent;

	public class EventController extends EventDispatcher
	{
		
		protected const APLICATION_EXCEPTION:String = "EventAppException";
		
		protected const AMBIENTE_EXCEPTION:String = "EventEnvException";
		
		public function EventController()
		{
		}
		
		protected function treatExpcetion(url:String, type:String) : void
		{
			
			if (type.indexOf(APLICATION_EXCEPTION) != -1)
			{
				
				
				
			}
			else if (type.indexOf(AMBIENTE_EXCEPTION) != -1)
			{
				
				
				
			}
			
		}
		
		protected function handleFault(event:FaultEvent):void
		{
			var errorMessage:ErrorMessage = event.message as ErrorMessage;
			show(errorMessage.rootCause.message);
		}
		
		protected function show(pTexto:String="") : void 
		{
			Alert.show(pTexto, "Aviso", 4, null, null, null);
		}
		
		protected function showTitle(pTexto:String, pTitulo:String) : void 
		{
			Alert.show(pTexto, pTitulo, 4, null, null, null);
		}
		
		protected function showError(pTexto:String="") : void 
		{
			
			if (DRMUtils.isNullOrEmpty(pTexto)) 
			{
				pTexto = "Ocorreu um erro!";
			}
			
			Alert.show(pTexto, "Error", 4, null, null, null);
			
		}
		
		protected function showErrorTitle(pTexto:String, pTitulo:String) : void 
		{
			
			if (DRMUtils.isNullOrEmpty(pTexto)) 
			{
				pTexto = "Ocorreu um erro!";
			}
			
			if (DRMUtils.isNullOrEmpty(pTitulo)) 
			{
				pTitulo = "Error";
			}
			
			Alert.show(pTexto, pTitulo, 4, null, null, null);
			
		}
		
		protected function showSucess(pTexto:String="") : void 
		{
			
			if (DRMUtils.isNullOrEmpty(pTexto))
			{
				pTexto = "Operação realizada com sucesso!";
			}
			
			Alert.show(pTexto, "Sucesso", 4, null, null, null);
			
		}
		
		protected function showSucessTitle(pTexto:String, pTitulo:String) : void 
		{
			
			if (DRMUtils.isNullOrEmpty(pTexto)) 
			{
				pTexto = "Operação realizada com sucesso!";
			}
			
			if (DRMUtils.isNullOrEmpty(pTitulo))
			{
				pTitulo = "Sucesso";
			}
			
			Alert.show(pTexto, pTitulo, 4, null, null, null);
			
		}
		
		protected function showSucessFunction(parent:Sprite, closeHandler:Function, pTexto:String="") : void 
		{
			
			if (DRMUtils.isNullOrEmpty(pTexto)) 
			{
				pTexto = "Operação realizada com sucesso!";
			}
			
			Alert.show(pTexto, "Sucesso", 4, parent, closeHandler, null);
			
		}
		
		protected function showConfirm(parent:Sprite, closeHandler:Function, pTexto:String = "") : void 
		{
			
			if (DRMUtils.isNullOrEmpty(pTexto)) 
			{
				pTexto = "Confirma a execução do processo?";
			}
			
			Alert.show(pTexto, "Confirmação", Alert.YES | Alert.NO, parent, closeHandler, null);
			
		}
		
		protected function showConfirmTitle(parent:Sprite, closeHandler:Function, pTexto:String, pTitulo:String) : void 
		{
			
			if (DRMUtils.isNullOrEmpty(pTexto)) 
			{
				pTexto = "Confirma a execução do processo?";
			}
			
			if (DRMUtils.isNullOrEmpty(pTitulo)) 
			{
				pTitulo = "Confirmação";
			}
			
			Alert.show(pTexto, pTitulo, Alert.YES | Alert.NO, parent, closeHandler, null);
			
		}
		
		protected function showConfirmRemove(parent:Sprite, closeHandler:Function, pTexto:String = "") : void 
		{
			
			if (DRMUtils.isNullOrEmpty(pTexto)) 
			{
				pTexto = "Confirma a exclusão dos itens selecionados?"
			}
			
			Alert.show(pTexto, "Remoção", Alert.YES | Alert.NO, parent, closeHandler, null);
			
		}
		
		protected function showConfirmRemoveTitle(parent:Sprite, closeHandler:Function, pTexto:String, pTitulo:String) : void 
		{
			
			if (DRMUtils.isNullOrEmpty(pTexto)) 
			{
				pTexto = "Confirma a exclusão dos itens selecionados?"
			}
			
			if (DRMUtils.isNullOrEmpty(pTitulo)) 
			{
				pTitulo = "Remoção";
			}
			
			Alert.show(pTexto, pTitulo, Alert.YES | Alert.NO, parent, closeHandler, null);
			
		}
	}
}